EventBridge ルールのデッドレターキューに FIFO キューを指定することはできますか?
困っていた内容
EventBridge ルールでデッドレターキューを設定するために SQS の FIFO キューを作成しましたが、EventBridge ルールのデッドレターキューの設定で FIFO キューを指定したところ、以下のメッセージが表示され、ルールを作成できませんでした。
SQS FIFO is not supported by Dead Letter Queues.
EventBridge ルールのデッドレターキューに FIFO キューを指定することはできますか?
どう対応すればいいの?
EventBridge ルールのデッドレターキューには標準キューのみ指定可能であるため、FIFO キューを指定することはできません。
そのため、デッドレターキューには標準キューを指定する必要があります。
Using dead-letter queues to process undelivered events in EventBridge
EventBridge DLQs are standard Amazon SQS queues that EventBridge uses to store events that couldn't successfully be delivered to a target.
やってみた
まずは検証用に SQS の標準キューと FIFO キューを作成しました。
EventBridge コンソールからのルール作成時にデッドレターキューの項目を確認してみると、SQS キューの一覧に FIFO キューも表示されていました。
デッドレターキューに FIFO キューを指定してルールの作成を試みましたが、コンソール上に冒頭のエラーメッセージが表示され、ルールを作成できませんでした。
CloudTrail を確認したところ、PutTargets イベントで以下のメッセージが記録されていました。
"errorCode": "ValidationException",
"errorMessage": "SQS FIFO is not supported by Dead Letter Queues.",
以上より、EventBridge ルールのデッドレターキューに FIFO キューを指定することはできないことを確認できました。
念のため標準キューを指定できるかどうかも確認しておきました。
標準キューであればデッドレターキューに指定することができる点についても確認できました。